Swift (parallel scripting language)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Swiftcite-ref-swift-lang-1-0[1] is an implicitly parallel programming language that allows writing scripts that distribute program execution across distributed computing resources,cite-ref-2[2] including clusters, clouds, grids, and supercomputers. Swift implementations are open-source software under the Apache License, version 2.0.
Contents
• See also
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Language features
A Swift scriptcite-ref-3[3] describes strongly typed data, application components, invocations of applications components, and the interrelations in the dataflow between those invocations. The program statements will automatically run in parallel unless there is a data dependency between them, given sufficient computing resources. The design of the language guarantees that results of a computation are deterministic, even though the order in which statements executes may vary. A special file data type is built into Swift. It allows command-line programs to be integrated into a program as typed functions. This allows programmers to write programs that treat command-line programs and files in the same way as regular functions and variables. A concept of mappingcite-ref-4[4] is used to store and exchange complex data structures using a file system structure with files and directories.
Rapid dispatch of parallel tasks to a wide range of resources is implemented through a mechanism called Coasters task dispatch.cite-ref-5[5] A Message Passing Interface based implementation of the languagecite-ref-6[6] supports very high task execution rates (e.g., 3000 tasks per second)cite-ref-parallel-scripting-7-0[7] on large clusters and supercomputers.
Area of applications
• Energy modelling
• Climate modelling
• Economic modelling
• Biochemical protein modelling
• Magnetic resonance imaging (MRI) analysis in neuroscience
• Glass structure modelling
See also
References
cite-note-swift-lang-11. ↑ "Swift Home Page". swift-lang.org. Retrieved 2014-06-02.
cite-note-22. ↑ citerefwildehateganwozniakclifford2011Wilde, Michael; Hategan, Mihael; Wozniak, Justin M.; Clifford, Ben; Katz, Daniel S.; Foster, Ian (2011). "Swift: A language for distributed parallel scripting" (PDF). Parallel Computing. 37 (9): 633–652. CiteSeerX 10.1.1.658.8990. doi:10.1016/j.parco.2011.05.005. Archived from the original (PDF) on 2014-06-06.
cite-note-33. ↑ Reference manual, chapter 2
cite-note-44. ↑ Reference manual, chapter 3
cite-note-55. ↑ citerefhateganwozniakmaheshwari2011Hategan, Mihael; Wozniak, Justin; Maheshwari, Ketan (2011). "Coasters: uniform resource provisioning and access for scientific computing on clouds and grids" (PDF). Proceedings Utility and Cloud Computing.
cite-note-66. ↑ Wozniak, Justin M., Timothy G. Armstrong, Michael Wilde, Daniel S. Katz, Ewing Lusk, and Ian T. Foster. "Swift/T: Large-scale Application Composition via Distributed-memory Dataflow Processing." In Cluster, Cloud and Grid Computing (CCGrid), 2013 13th IEEE/ACM International Symposium on, pp. 95-102. IEEE, 2013
cite-note-parallel-scripting-77. ↑ citerefwildefosteriskrabeckman2009Wilde, Michael; Foster, Ian; Iskra, Kamil; Beckman, Pete; Zhang, Zhao; Espinosa, Allan; Hategan, Mihael; Clifford, Ben; Raicu, Ioan (2009). "Parallel Scripting for Applications at the Petascale and Beyond" (PDF). Computer. 42 (11): 50–60. doi:10.1109/mc.2009.365. S2CID 5271623. Archived from the original (PDF) on 2014-07-12.
cite-note-88. ↑ Case studies on the official site